package com.zan.kuangshen;

/**
 * @Author Zan
 * @Create 2024/4/21 11:15
 * @Description :
 */
public class Demo02 {
    public static void main(String[] args) {
        // 返回虚拟机试图使用的最大内存
        long max = Runtime.getRuntime().maxMemory(); // 返回字节，字节 -> 兆 1024*1024
        // 返回jvm的初始化总内存
        long total = Runtime.getRuntime().totalMemory();

        System.out.println("max=" + max + "字节\t" + (max / (double) 1024 / 1024) + "MB");
        System.out.println("total=" + total + "字节\t" + (total / (double) 1024 / 1024) + "MB");

        // 默认情况下：分配的总内存是电脑内存的1/4，而初始化的内存：1/64

    }

    // 遇到OOM的措施：
    // 1.尝试扩大堆内存的空间（如果还有问题，可能有无限循环代码或者垃圾代码存在）
    // 2.分析内存，看一下哪个地方出现问题（专业工具）

    // -Xms1024m -Xmx1024m -XX:+PrintGCDetails

    // 305664K + 699392K = 1005056K = 981.5M
}
